Systems and methods for automated pool heating unit configurations

ABSTRACT

Disclosed are systems and methods for automated hybrid pool heating unit configurations. An example method may include determining, by a processor, a first input parameter associated with an operation of a pool heating system comprising a first pool heating unit and a second pool heating unit, wherein the first pool heating unit is a first type of pool heating unit and the second pool heating unit is a second type of pool heating unit. The example method may also include sending, using the processor, based on receiving the first input parameter, a first signal to enable the first pool heating unit to heat a first pool. The example method may also include determining, by the processor, a second input parameter. The example method may also include sending, using the processor, based on receiving the second input parameter, a second signal to enable the second pool heating unit to heat the first pool.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of U.S. Application No. 63/367,444,filed Jun. 30, 2022, the entirety of which is hereby incorporated byreference.

TECHNICAL FIELD

The present disclosure relates generally to systems and methods forautomated hybrid pool heating unit configurations, and, moreparticularly, to systems and methods for controlling hybrid pool heatingunit configurations including one or more different types of poolheating units.

BACKGROUND

In today's market, controller logic in pool automation systems does notcontemplate the existence of multiple different types of heating unitsas alternative options to heat one or more selected pools. A poolheating system including multiple heating options is becomingincreasingly popular in the pool residential and commercial market. Suchconfigurations allow for a system to use different types of pool heatingunits at different times based on current needs. These different poolheating units may have associated benefits and downsides that may makeone type of pool heating unit more preferable to another type of poolheating unit in certain situations.

As a first example, gas heating units use natural gas or propane that isignited by a flame to heat water as it flows through the unit. Gasheating units are able to heat a pool quickly, but may be more expensiveto operate than other types of pool heating units. As a second example,a heat pump uses air from the environment to heat the water. Warm air isdrawn over an evaporator coil by a fan. The water flows through a heatexchanger and is then returned to the pool. Given that heat pumps useambient air, they may not function well in lower temperatureenvironments. However, they may be cheaper to operate than a gas heatingunit. As a third example, a solar heating unit (which may include anarray of solar panels) uses energy from the sun to heat the pool. Wateris pumped through the solar panel(s) and is warmed by the natural heatof the sun that is absorbed by the solar panel(s). Solar panel(s)typically involve little to no operating cost, but their effectivenessdepends on the availability of sunlight. These are examples of differenttypes of pool heating units and is not an exhaustive list.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an example use case, in accordance with one or moreembodiments of the disclosure.

FIG. 2 is an example system, in accordance with one or more embodimentsof the disclosure.

FIG. 3 is an example method, in accordance with one or more examples ofthe disclosure.

FIG. 4 is an example system, in accordance with one or more embodimentsof the disclosure.

The detailed description is set forth with reference to the accompanyingdrawings. The drawings are provided for purposes of illustration onlyand merely depict example embodiments of the disclosure. The drawingsare provided to facilitate understanding of the disclosure and shall notbe deemed to limit the breadth, scope, or applicability of thedisclosure. The use of the same reference numerals indicates similar butnot necessarily the same or identical components; different referencenumerals may be used to identify similar components as well. Variousembodiments may utilize elements or components other than thoseillustrated in the drawings, and some elements and/or components may notbe present in various embodiments. The use of singular terminology todescribe a component or element may, depending on the context, encompassa plural number of such components or elements and vice versa.

DETAILED DESCRIPTION

This disclosure relates to, among other things, systems and methods forautomated hybrid pool heating unit configurations. A “hybrid” poolheating unit configuration may refer to a configuration that involvesthe use of multiple different types of pool heating units (for example,gas, electric, solar, and/or any other types of pool heating unitsdescribed herein or otherwise) that are used to heat a single pool orgroup of pools. The system and methods described herein may serve tooptimize the effectiveness of such a hybrid pool heating unitconfiguration by employing logic that automatically switches between thedifferent pool heating unit systems based on a number of different typesof input parameters. As one illustrative and non-limiting example, a gasheating unit may be enabled when it is desired to heat a pool quickly,and a heat pump may be enabled when cost reductions are desired overpool heating time. These systems and methods may provide a number ofbenefits, particularly with respect to commercial pools (for example, ina hotel, water park, and/or any other commercial location), which mayrequire one or more pools to be continuously heated for a large numberof guests. However, as described herein, the systems and methods mayalso be applicable in any other context as well, including residentialpools.

To facilitate the automatic switching between the different pool heatingunits, a controller may be associated with one of the pool heatingunits. The controller may be used to enable or disable the pool heatingunit based on any of the parameters that are described herein orotherwise. The controller may also be used to communicate with otherpool heating units to enable or disable those other pool heating unitsas well. For example, a residential or commercial pool may include a gasheating unit and a heat pump. A controller may be built into the gasheating unit, which may enable or disable the gas heating unit and mayalso communicate with the heat pump to enable or disable the heat pumpas well. Some or all of the other pool heating units may include simplermechanisms for enabling or disabling the heating unit. For example, theaforementioned heat pump may not include a second controller that is incommunication with the controller associated with the gas heating unit,but may rather may include more simple circuitry that may be used toenable and disable the heat pump. In this case, the controllerassociated with the gas heating unit may be configured to send a signalto the circuitry to enable or disable the heat pump. This is just onenon-limiting example of a manner in which a controller in one poolheating unit may be used to control another pool heating unit with moresimplified circuitry, and such controls may be effectuated in any othermanner as well.

Additionally, in some embodiments, controllers may be built intomultiple pool heating units as well. Continuing the above example, boththe gas heating unit and the heat pump may include controllers. Eitherthe controller associated with the gas heating unit and/or thecontroller associated with the heat pump may be configured tocommunicate with the other controller to enable or disable either of thepool heating units. In some embodiments, one specific controllerassociated with one of the pool heating units may serve as the primarycontroller that maintains any control logic and communicates with othercontrollers to enable or disable other pool heating units. However, insome embodiments, any of the other controllers in the other pool heatingunits may also be capable of performing similar actions. That is, theprimary control logic may not necessarily be limited to just one of thecontrollers associated with one of the pool heating units. In evenfurther embodiments, the controller may be standalone and may notnecessarily be built into any of the pool heating units.

The one or more controller(s) may automatically send signals to enableor disable the different types of pool heating units based onestablished control logic. In some embodiments, the control logic may bebased on an artificial intelligence model. For example, an artificialintelligence model may receive as inputs one or more parameters and maydetermine, based on the one or more parameters, which of the poolheating units to enable to heat the pool at any given time. Theartificial intelligence model may also be trained prior to theimplementation of the pool heating system and/or in real-time during useof the pool heating system. In some cases, the model may beself-training and may improve over time without requiring any manualfeedback from a user. However, in some cases, feedback may be providedby a user and this feedback may be used to train the model as well. Forexample, the model may determine that an heat pump should be used toheat a pool on a Friday evening, but a user may prefer to use the poolon Friday evenings and may desire a quicker type of heating unit. Inthis example, the user may provide manual feedback to indicate that agas heating should be used instead of the heat pump during thatparticular time. The model may then use this feedback to train themodel. This is a non-limiting example of a manner in which the model maybe trained; the model may be trained in any other manner as well.Although reference is made to an artificial intelligence model, anyother type of model may also be used (for example, machine learning orthe like).

Alternatively (or in addition to artificial intelligence model or anyother type of model), the control logic may also include more simplifiedalgorithms. For example, the simplified algorithm may track a currentday of the week. The algorithm may be configured such that one type ofpool heating unit may be used for one day of the week and a second typeof pool heating unit may be used for a second day of the week. This is anon-limiting example of such a simplified algorithm. The algorithm mayalso involve any other number of different types of logic associatedwith any other parameters. In this manner, the control logic may alsoinvolve a grouping of pre-determined conditions that may trigger certainactions, rather than relying on artificial intelligence, machinelearning, or the like.

The control logic may receive as inputs any number of different types ofparameters. Non-limiting examples of such input parameters may includesolar capacity, ambient temperature, pool return water temperature,weather, ambient humidity, time of day (and/or any other time-basedparameters, such as current month, day of the week, peak utility hours,etc.), a desired heating rate (for example, how quickly it is desiredfor the pool to be heated), etc. The input parameters may also includeany other types of data as well.

Additionally, the input parameters may include demand response. Demandresponse may refer to a scenario in which a power company may disablecertain utilities provided to a customer in order to focus on powersupplied to other portions of the power grid (to allow the power companyto adjust the demand for power rather than adjusting the supplyrequirements). For example, the power company may reduce or disablepower provided to a particular customer during peak power consumptionhours for the grid (or a portion of the grid) as a whole. The demandresponse may be used as an input parameter to determine at which pointsin time an alternative to an electric heat pump should be used as thepool heating unit providing heat to a pool. For example, if the powerprovided to a home including an heat pump and a solar panel is reducedaccording to demand response (which may prevent the heat pump from beingused), then the pool heating system may enable the solar panel tocontinue providing heat to the pool.

The control logic may also be based on any number of user-provided inputparameters as well. For example, a user may indicate a preference for apool to be heated quicker during certain times of day and/or certaindays of the year. The user may also indicate a pool temperaturepreference, a cost preference, and/or any other types of inputparameters as well. These user-provided input parameters may beconsidered in combination with any other input parameters considered bythe control logic in determining which of the pool heating units shouldbe enabled or disabled at any given time. Additionally, a user maymanually override the control logic. For example, if in a given scenariothe control logic may automatically turn on an heat pump, the user maymanually indicate that they instead desire for the gas heating unit tobe used instead. This is a non-limiting example of a manner in which auser may manually control operation of the one or more pool heatingunits; other manual controls are also possible.

Any of the input parameters may be provided weightings relative to otherinput parameters as well. That is, some of the input parameters may havemore of an impact on the specific pool heating unit that is selected tobe enabled by the control logic at any given time. These weightings maybe generated automatically through artificial intelligence, machinelearning, or the like. The weightings may also be manually provided by auser.

A user may interact with any of the controller(s) using any number ofdifferent types of devices. For example, an application on a mobiledevice (e.g., smartphone, tablet or similar device) may be configured toallow the user to interact with the one or more controller(s). Examplesof such interactions may include providing indications of user-definedinput parameters, manually controlling the operation of the differentpool heating units, and/or any other types of interactions. For example,the user may be able to view a current schedule that may be followed bythe control logic for enabling or disabling certain pool heating unitsat certain times. The user may also be able to manually override anycontrol logic and indicate which pool heating unit they currently desireto heat the pool (or heat the pool at any given time in the future). Theapplication may also be configured to allow the user to view informationabout the one or more pool heating units. For example, the applicationmay present a listing of the pool heating units included in the system,a current status of each of the pool heating units, any data that iscaptured and provided to the pool heating units as inputs (e.g., weatherdata, humidity data, current pool temperature, etc.), and/or any othertypes of information. The use of a smartphone application is merelyexemplary, and the user may also interact with and/or view informationabout any of the pool heating units using any other type of device (forexample, a desktop or laptop computer, a tablet, and/or any other typeof device).

Additionally, the one or more controllers themselves may be configuredto allow for direct user interaction. For example, a controller mayinclude a display that presents a user interface that may allow a userto view the same types of information and/or perform the same types ofinteractions that may otherwise be performed using another device, suchas a smartphone.

FIG. 1 is an example use case 100, in accordance with one or moreembodiments of the disclosure. The use case 100 provides onenon-limiting example of the operation of the automated hybrid poolheating system as described herein.

The use case 100 may begin with scene 102, which depicts a location 104including a pool 112. The pool 112 may be a residential or commercialpool. Additionally, although the location 104 is illustrated as havingonly one pool 112, any other number of pools may also exist at thelocation 104 as well. The location 104 may also include one or moredifferent types of pool heating units. For example, the scene 102illustrates a solar panel 106, a gas heating unit 108, and an heat pump110. In this configuration, the gas heating unit 108 may include abuilt-in controller (not shown in the figure). This is an exemplaryhybrid pool configuration, and the location 104 may further include anyother number and/or types of pool heating units. In various embodiments,there may be multiple controllers built into any number of the poolheating units, and any of the controllers may host any of the controllogic and enable or disable any of the other pool heating units.

As shown in the scene 102, the location 104 may be experiencing cloudyweather. Control logic associated with the controller in the gas heatingunit 110 therefore may automatically determine that the solar panel 106should not be used to heat the pool 112. The controller may alsodetermine that temperature at the location 104 (and in the pool 112) islow and that the pool is intended to be used later in the day. Giventhis, the controller may determine that the gas heating unit 110 shouldbe enabled to heat the pool 112 to allow the pool to be heated quicklyenough for usage in the near future. The controller may then enable thegas heating unit 110 to heat the pool 112.

Following scene 102, scene 120 illustrates the same location 104 at asecond time in which the weather is sunny. Based on this, the controllermay determine that the solar panel 106 should be enabled to heat thepool 112. The controller may then send a signal to the solar panel 106to enable the solar panel 106, and may also disable the gas heating unit110. In making this determination, the controller may take intoconsideration any number of other input parameters in addition to theweather status. Non-limiting examples of such input parameters includesolar capacity, ambient temperature, pool return water temperature,weather, humidity, time of day (and/or any other time-based parameters,such as a current month, day of the week, etc.). The input parametersmay also include any other types of data. The controller may use anartificial intelligence model, machine learning model, and/or any othertype of model in making such determinations. The controller may also usemore simplified control logic based on predetermined conditions.

Following scene 120, scene 130 illustrates a scenario in which a user132 performs manual control of the pool heating units through anapplication installed on a mobile device 134. The application maydisplay a user interface on the mobile device 134 that may allow theuser 132 to communicate with the controller to indicate which poolheating units should be enabled at any given time. For example, the user132 may indicate through the mobile device 134 that they desire for thegas heating unit 110 to be enabled to heat the pool rather than thesolar panel 106. This may allow the user to manually override theautomated control logic that would otherwise select the pool heatingunit that is used to heat the pool. The application may also beconfigured to allow the user to view information about the one or morepool heating units as well.

As noted above, the use case 100 is intended to be exemplary and is notintended to be limiting in terms of the operation of the system (forexample, any of the pool heating units, controller(s), mobile device,etc.).

FIG. 2 illustrates an example of a system 200, in accordance with one ormore embodiments of this disclosure. In various embodiments, the system200 may include one or more different types of pool heating units (forexample, one or more electric heating units and/or gas heating units202, one or more heat pumps 210, one or more solar panels 220, and/orany other type of pool heating unit), one or more mobile devices 230that may be associated with one or more users 235, one or more remoteservers 240, and/or one or more sensors 250.

With respect to the different types of pool heating units, a gas heatingunit 202 may use natural gas or propane that is ignited by a flame toheat water as the water flows through the unit. Other embodiments mayinclude electric heating units instead of or in addition to gas heatingunits. Gas heating units are able to heat a pool quickly, but may bemore expensive to operate than other types of pool heating units. Anelectric pool heating unit 210 may use air from the environment to heatthe water. Warm air is drawn over an evaporator coil by a fan. The waterflows through a heat exchanger and is then returned to the pool. Giventhat the electric pool heating unit may use ambient air, it may notfunction well in lower temperature environments. However, it may becheaper to operate than a gas heating unit. A solar panel 220 may useenergy from the sun to heat the pool. Water is pumped through the solarpanel 220 and is warmed by natural heat of the sun that is absorbed bythe solar panel 220. A solar panel 220 may typically involve little tono operating cost, but its effectiveness depends on the availability ofsunlight. Although reference is made to gas heating units 220, heatpumps 210, and solar panels 220, any other type of pool heating unit orcombination of different types of pool heating units may also beincluded within the system 200 as well, and the recitation of theseparticular three types of pool heating units is not intended to belimiting. For example, another type of pool heating unit may include anelectric pool heating unit that relies on a heating element, such as ametal coil.

Additionally, any of the pool heating units may include a controller(for example, controller 204 associated with the gas heating unit 202,controller 210 associated with the heat pump 210, and/or controller 220associated with the solar panel 220) to facilitate control logicassociated with the system 200. The controller may be integrated insideof the pool heating unit, may be located on the external surface of thepool heating unit, and/or any other location on and/or within a poolheating unit. A controller may also be a standalone device and notintegrated into any of the pool heating units and/or may be associatedwith a device or system other than a pool heating unit. For example, acontroller may be associated with one or more remote servers 240 and/ora mobile device 230 in addition to, or alternatively to, being includedwithin any of the pool heating units. In this manner, a controller maynot necessarily need to be at the location of the pool heating units andthe pool that is being heated.

Any of the controllers may be used to enable or disable a pool heatingunit the controller is associated with based on any of the parametersthat are described herein or otherwise. The controller may also be usedto communicate with other pool heating units (which may also includetheir own associated controllers, or may alternatively include simplermechanisms for enabling and/or disabling the heating unit) to enableand/or disable those other pool heating units. As one non-limitingexample, a residential or commercial pool may include a gas heating unitand an heat pump. A controller may be built into the gas heating unit,which may enable and/or disable the gas heating unit and may alsocommunicate with the heat pump to enable and/or disable the heat pump.

Furthermore, any of the controllers may be used to control pool heatingunits at multiple locations. For example, a user may own several poolsat the same location or at different locations. A controller may beconfigured to not only communicate with pool heating units located atone pool, but may also be configured to communicate with othercontrollers and/or pool heating units at other remote locations usingany known wired or wireless communication methods.

In one or more embodiments, any of the one or more controllers mayinclude any of the components of the computing device(s) 400 describedwith respect to FIG. 4 . That is, as illustrated in the figure, theseelements of the system 200 may include one or more processor(s), memory,and/or module(s), as well as at least any other elements described asbeing included in the computing device(s) 400. Although the figure mayonly depict a particular element of system 200 as having one or moreprocessors, memory, and one or more modules, this is intended to belimiting.

The mobile device 230 may be a device that is used by user 235 tointeract with any of the controllers in the system 200. That is, themobile device 230 may include an application 232. The application 232may display a user interface to the user 235 through the mobile device230. The application 232 may allow the user 235 to provide controlinputs to any of the controllers included within the system 200. Forexample, the application 232 may allow the user 235 to indicate certainparameters that may be used by the controller(s) in determining which ofthe pool heating units should be enabled or disabled. The application232 may also allow the user 235 to manually control operation of the oneor more pool heating units. In this manner, the application 232 mayallow the user 235 to manually override any control logic associatedwith any of the controllers. For example, the application 232 may allowthe user 235 to indicate that they desire for a gas heating unit 202 tobe enabled even if the automated control logic associated with any ofthe controllers may have enabled the heat pump 210 at that particulartime.

The mobile device 230 may also allow the user 235 to view informationabout the status of the system 200. For example, the application 232 mayallow the user 235 to view a listing of any pool heating units includedin the system 200. In some cases, the user 235 may also be able to viewinformation about pool heating units included in multiple of suchsystems. For example, the user 235 may manage multiple pools at multipledifferent locations. The application 232 may allow the user to viewinformation about pool heating units included at one pool and poolheating units included at a second pool. The application 232 may alsoallow the user 235 to view any other information associated with theoperation of the system 200. For example, the application 232 may allowthe user to view information about which pool heating unit is currentlybeing used to heat a particular pool, data captured from any of thesensors 250, and/or any other types of relevant information.

The one or more sensors 250 may include any number of different types ofsensors that may be used to capture data about an environment in whichthe system 200 is located, any of the elements of the system 200, and/orany other types of data. As non-limiting examples, the sensors 250 mayinclude temperature sensors and/or humidity sensors. Any other types ofsensors 250 that may be used to capture any other types of data may alsobe used. This data may be provided as inputs to control logic associatedwith any of the controllers in the system 200, which may then be used byany of the controllers to determine whether and when to enable ordisable any of the pool heating units in the system 200. The dataproduced by the sensors 250 may also be displayed through theapplication 232 and/or through a display associated with any of thecontrollers. The one or more sensors 250 may be integrated into any ofthe pool heating units, the one or more mobile devices 230, and/or mayalso exist as standalone sensors in the local environment of the system200.

The one or more different types of pool heating units, one or moremobile devices 230 that may be associated with one or more users 235,one or more remote servers 240, and/or one or more sensors 250 via acommunications network 260. The communications network 260 may include,but is not limited to, any one of a combination of different types ofsuitable communications networks such as, for example, broadcastingnetworks, cable networks, public networks (e.g., the Internet), privatenetworks, wireless networks, cellular networks, or any other suitableprivate and/or public networks. Further, the communications network 260may have any suitable communication range associated therewith and mayinclude, for example, global networks (e.g., the Internet), metropolitanarea networks (MANs), wide area networks (WANs), local area networks(LANs), or personal area networks (PANs). In addition, communicationsnetwork 260 may include any type of medium over which network trafficmay be carried including, but not limited to, coaxial cable,twisted-pair wire, optical fiber, a hybrid fiber coaxial (HFC) medium,microwave terrestrial transceivers, radio frequency communicationmediums, white space communication mediums, ultra-high frequencycommunication mediums, satellite communication mediums, or anycombination thereof.

FIG. 3 is an example method 300, in accordance with one or more examplesof the disclosure. The method 300 may be performed by any of thecontrollers described herein (for example, controller(s) 204, 212, 222,242 illustrated in FIG. 2 ), the computing system 400, and/or any otherdevice and/or system described herein or otherwise.

At block 302, the method 300 may include determining a first inputparameter associated with an operation of a pool heating systemcomprising a first pool heating unit and a second pool heating unit,wherein the first pool heating unit is a first type of pool heating unitand the second pool heating unit is a second type of pool heating unit.Block 304 of the method 300 may include sending, based on receiving thefirst input parameter, a first signal to enable the first pool heatingunit to heat a first pool. Block 306 of the method 300 may includedetermining a second input parameter. Block 308 of the method 300 mayinclude sending, based on receiving the second input parameter, a secondsignal to enable the second pool heating unit to heat the first pool.Optional block 310 of the method 300 may include sending a third signalto enable a fourth pool heating unit to heat a second pool, wherein thesecond pool is at a different location than the first pool.

In one or more embodiments, input parameters comprise at least one of:solar capacity (for example, a maximum amount of energy that can beoutput by one or more solar panels), ambient temperature (for example, atemperature of the environment in which the one or more pools and thepool heating units exists), a water temperature of the first pool, aweather condition (for example, sun exposure/direction, cloud cover,precipitation, wind speed and direction, humidity, temperature, airpressure (rising or falling)), time of day, or power grid demandresponse. The input parameters may also include any other types of datarelating to the one or more pools, one or more pool heating units, andthe environment in which the one or more pools and one or more poolheating units reside. The input parameters may also includeuser-provided parameters. The input parameters may also include anyother data.

In one or more embodiments, the first type of pool heating unit and thesecond type of pool heating unit comprise at least one of: a gas poolheating unit, an heat pump, or a solar panel. In one or moreembodiments, the pool heating system further comprises a third poolheating unit, wherein the third pool heating unit is a third type ofpool heating unit. In one or more embodiments, the processor isintegrated into the first pool heating unit or the second pool heatingunit. In one or more embodiments, the first input parameter or thesecond input parameter are received from a user mobile device.

One or more operations of the methods, process flows, or use cases ofFIGS. 1-3 are described as being performed by a user device, or morespecifically, by one or more program module(s), applications, or thelike executing on a device. It is appreciated, however, that any of theoperations of the methods, process flows, or use cases of FIGS. 1-3 maybe performed, at least in part, in a distributed manner by one or moreother devices, or more specifically, by one or more program module(s),applications, or the like executing on such devices. In addition, itshould be appreciated that processing performed in response to executionof computer-executable instructions provided as part of an application,program module, or the like may be interchangeably described herein asbeing performed by the application or the program module itself or by adevice on which the application, program module, or the like isexecuting. While the operations of the methods, process flows, or usecases of FIGS. 1-3 may be described in the context of the illustrativedevices, it is appreciated that such operations may be implemented inconnection with numerous other device configurations.

The operations described and depicted in the illustrative methods,process flows, and use cases of FIGS. 1-3 may be carried out orperformed in any suitable order, such as the depicted orders, as desiredin various example embodiments of the disclosure. Additionally, incertain example embodiments, at least a portion of the operations may becarried out in parallel. Furthermore, in certain example embodiments,less, more, or different operations than those depicted in FIGS. 1-3 maybe performed.

Although specific embodiments of the disclosure have been described, oneof ordinary skill in the art will recognize that numerous othermodifications and alternative embodiments are within the scope of thedisclosure. For example, any of the functionality and/or processingcapabilities described with respect to a particular device or componentmay be performed by any other device or component. Further, whilevarious illustrative implementations and architectures have beendescribed in accordance with embodiments of the disclosure, one ofordinary skill in the art will appreciate that numerous othermodifications to the illustrative implementations and architecturesdescribed herein are also within the scope of this disclosure.

Certain aspects of the disclosure are described above with reference toblock and flow diagrams of systems, methods, apparatuses, and/orcomputer program products according to example embodiments. It will beunderstood that one or more blocks of the block diagrams and flowdiagrams, and combinations of blocks in the block diagrams and the flowdiagrams, respectively, may be implemented by execution ofcomputer-executable program instructions. Likewise, some blocks of theblock diagrams and flow diagrams may not necessarily need to beperformed in the order presented, or may not necessarily need to beperformed at all, according to some embodiments. Further, additionalcomponents and/or operations beyond those depicted in blocks of theblock and/or flow diagrams may be present in certain embodiments.

Accordingly, blocks of the block diagrams and flow diagrams supportcombinations of means for performing the specified functions,combinations of elements or steps for performing the specifiedfunctions, and program instruction means for performing the specifiedfunctions. It will also be understood that each block of the blockdiagrams and flow diagrams, and combinations of blocks in the blockdiagrams and flow diagrams, may be implemented by special-purpose,hardware-based computer systems that perform the specified functions,elements or steps, or combinations of special-purpose hardware andcomputer instructions.

FIG. 4 is a schematic block diagram of one or more illustrativecomputing device(s) 400 in accordance with one or more exampleembodiments of the disclosure. The computing device(s) 400 may includeany suitable computing device including, but not limited to, a serversystem, a mobile device such as a smartphone, a tablet, an e-reader, awearable device, or the like; a desktop computer; a laptop computer; acontent streaming device; a set-top box; or the like. The computingdevice(s) 400 may correspond to an illustrative device configuration forany of the computing systems described herein and/or any other systemand/or device.

The computing device(s) 400 may be configured to communicate via one ormore networks. Such network(s) may include, but are not limited to, anyone or more different types of communications networks such as, forexample, cable networks, public networks (e.g., the Internet), privatenetworks (e.g., frame-relay networks), wireless networks, cellularnetworks, telephone networks (e.g., a public switched telephonenetwork), or any other suitable private or public packet-switched orcircuit-switched networks. Further, such network(s) may have anysuitable communication range associated therewith and may include, forexample, global networks (e.g., the Internet), metropolitan areanetworks (MANs), wide area networks (WANs), local area networks (LANs),or personal area networks (PANs). In addition, such network(s) mayinclude communication links and associated networking devices (e.g.,link-layer switches, routers, etc.) for transmitting network trafficover any suitable type of medium including, but not limited to, coaxialcable, twisted-pair wire (e.g., twisted-pair copper wire), opticalfiber, a hybrid fiber-coaxial (HFC) medium, a microwave medium, a radiofrequency communication medium, a satellite communication medium, or anycombination thereof.

In an illustrative configuration, the computing device(s) 400 mayinclude one or more processors (processor(s)) 402, one or more memorydevices 404 (generically referred to herein as memory 404), one or moreinput/output (I/O) interfaces 406, one or more network interfaces 408,one or more sensors or sensor interfaces 410, one or more transceivers412, one or more optional speakers 414, one or more optional microphones416, and data storage 420. The computing device(s) 400 may furtherinclude one or more buses 418 that functionally couple variouscomponents of the computing device(s) 400. The computing device(s) 400may further include one or more antenna(s) 434 that may include, withoutlimitation, a cellular antenna for transmitting or receiving signalsto/from a cellular network infrastructure, an antenna for transmittingor receiving WiFi signals to/from an access point (AP), a GlobalNavigation Satellite System (GNSS) antenna for receiving GNSS signalsfrom a GNSS satellite, a Bluetooth antenna for transmitting or receivingBluetooth signals, a Near Field Communication (NFC) antenna fortransmitting or receiving NFC signals, and so forth. These variouscomponents will be described in more detail hereinafter.

The bus(es) 418 may include at least one of a system bus, a memory bus,an address bus, or a message bus, and may permit the exchange ofinformation (e.g., data (including computer-executable code), signaling,etc.) between various components of the computing device(s) 400. Thebus(es) 418 may include, without limitation, a memory bus or a memorycontroller, a peripheral bus, an accelerated graphics port, and soforth. The bus(es) 418 may be associated with any suitable busarchitecture including, without limitation, an Industry StandardArchitecture (ISA), a Micro Channel Architecture (MCA), an Enhanced ISA(EISA), a Video Electronics Standards Association (VESA) architecture,an Accelerated Graphics Port (AGP) architecture, a Peripheral ComponentInterconnect (PCI) architecture, a PCI-Express architecture, a PersonalComputer Memory Card International Association (PCMCIA) architecture, aUniversal Serial Bus (USB) architecture, and so forth.

The memory 404 of the computing device(s) 400 may include volatilememory (memory that maintains its state when supplied with power) suchas random access memory (RAM) and/or non-volatile memory (memory thatmaintains its state even when not supplied with power) such as read-onlymemory (ROM), flash memory, ferroelectric RAM (FRAM), and so forth.Persistent data storage, as that term is used herein, may includenon-volatile memory. In certain example embodiments, volatile memory mayenable faster read/write access than non-volatile memory. However, incertain other example embodiments, certain types of non-volatile memory(e.g., FRAM) may enable faster read/write access than certain types ofvolatile memory.

In various implementations, the memory 404 may include multipledifferent types of memory such as various types of static random accessmemory (SRAM), various types of dynamic random access memory (DRAM),various types of unalterable ROM, and/or writeable variants of ROM suchas electrically erasable programmable read-only memory (EEPROM), flashmemory, and so forth. The memory 404 may include main memory as well asvarious forms of cache memory such as instruction cache(s), datacache(s), translation lookaside buffer(s) (TLBs), and so forth. Further,cache memory such as a data cache may be a multi-level cache organizedas a hierarchy of one or more cache levels (L1, L2, etc.).

The data storage 420 may include removable storage and/or non-removablestorage, including, but not limited to, magnetic storage, optical diskstorage, and/or tape storage. The data storage 420 may providenon-volatile storage of computer-executable instructions and other data.The memory 404 and the data storage 420, removable and/or non-removable,are examples of computer-readable storage media (CRSM) as that term isused herein.

The data storage 420 may store computer-executable code, instructions,or the like that may be loadable into the memory 404 and executable bythe processor(s) 402 to cause the processor(s) 402 to perform orinitiate various operations. The data storage 420 may additionally storedata that may be copied to the memory 404 for use by the processor(s)402 during the execution of the computer-executable instructions.Moreover, output data generated as a result of execution of thecomputer-executable instructions by the processor(s) 402 may be storedinitially in the memory 404, and may ultimately be copied to the datastorage 420 for non-volatile storage.

More specifically, the data storage 420 may store one or more operatingsystems (O/S) 422; one or more database management systems (DBMS s) 424;and one or more program module(s), applications, engines,computer-executable code, scripts, or the like such as, for example, oneor more data management module(s) 426, one or more data analysismodule(s) 428, and/or one or more OBD module(s) 430. Some or all ofthese module(s) may be sub-module(s). Any of the components depicted asbeing stored in the data storage 420 may include any combination ofsoftware, firmware, and/or hardware. The software and/or firmware mayinclude computer-executable code, instructions, or the like that may beloaded into the memory 404 for execution by one or more of theprocessor(s) 402. Any of the components depicted as being stored in thedata storage 420 may support functionality described in reference tocorresponding components named earlier in this disclosure.

The data storage 420 may further store various types of data utilized bythe components of the computing device(s) 400. Any data stored in thedata storage 420 may be loaded into the memory 404 for use by theprocessor(s) 402 in executing computer-executable code. In addition, anydata depicted as being stored in the data storage 420 may potentially bestored in one or more datastore(s) and may be accessed via the DBMS 424and loaded in the memory 404 for use by the processor(s) 402 inexecuting computer-executable code. The datastore(s) may include, butare not limited to, databases (e.g., relational, object-oriented, etc.),file systems, flat files, distributed datastores in which data is storedon more than one node of a computer network, peer-to-peer networkdatastores, or the like.

The processor(s) 402 may be configured to access the memory 404 andexecute the computer-executable instructions loaded therein. Forexample, the processor(s) 402 may be configured to execute thecomputer-executable instructions of the various program module(s),applications, engines, or the like of the computing device(s) 400 tocause or facilitate various operations to be performed in accordancewith one or more embodiments of the disclosure. The processor(s) 402 mayinclude any suitable processing unit capable of accepting data as input,processing the input data in accordance with stored computer-executableinstructions, and generating output data. The processor(s) 402 mayinclude any type of suitable processing unit including, but not limitedto, a central processing unit, a microprocessor, a reduced instructionset computer (RISC) microprocessor, a complex instruction set computer(CISC) microprocessor, a microcontroller, an application-specificintegrated circuit (ASIC), a field-programmable gate array (FPGA), asystem-on-a-chip (SoC), a digital signal processor (DSP), and so forth.Further, the processor(s) 402 may have any suitable microarchitecturedesign that includes any number of constituent components such as, forexample, registers, multiplexers, arithmetic logic units, cachecontrollers for controlling read/write operations to cache memory,branch predictors, or the like. The microarchitecture design of theprocessor(s) 402 may be capable of supporting any of a variety ofinstruction sets.

Referring now to functionality supported by the various programmodule(s) depicted in FIG. 4 , the pool heating module(s) 426 mayinclude computer-executable instructions, code, or the like thatresponsive to execution by one or more of the processor(s) 402 mayperform functions including, but not limited to, receiving one or moreinput parameters form any number of different sources (for example,sensors 250, mobile devices 230, and/or any other data source),determining one or more pool heating unit(s) that may be enabled to heatone or more pools at any given time, and/or perform any otherfunctionality described herein. The pool heating module(s) 426 may alsoinclude any artificial intelligence model(s), machine learning model(s),and/or any other type of model.

Referring now to other illustrative components depicted as being storedin the data storage 420, the O/S 422 may be loaded from the data storage420 into the memory 404 and may provide an interface between otherapplication software executing on the computing device(s) 400 and thehardware resources of the computing device(s) 400. More specifically,the O/S 422 may include a set of computer-executable instructions formanaging hardware resources of the computing device(s) 400 and forproviding common services to other application programs (e.g., managingmemory allocation among various application programs). In certainexample embodiments, the O/S 422 may control execution of the otherprogram module(s) to dynamically enhance characters for contentrendering. The O/S 422 may include any operating system now known orwhich may be developed in the future, including, but not limited to, anyserver operating system, any mainframe operating system, or any otherproprietary or non-proprietary operating system.

The DBMS 424 may be loaded into the memory 404 and may supportfunctionality for accessing, retrieving, storing, and/or manipulatingdata stored in the memory 404 and/or data stored in the data storage420. The DBMS 424 may use any of a variety of database models (e.g.,relational model, object model, etc.) and may support any of a varietyof query languages. The DBMS 424 may access data represented in one ormore data schemas and stored in any suitable data repository including,but not limited to, databases (e.g., relational, object-oriented, etc.),file systems, flat files, distributed datastores in which data is storedon more than one node of a computer network, peer-to-peer networkdatastores, or the like. In those example embodiments in which thecomputing device(s) 400 is a mobile device, the DBMS 424 may be anysuitable lightweight DBMS optimized for performance on a mobile device.

Referring now to other illustrative components of the computingdevice(s) 400, the input/output (I/O) interface(s) 406 may facilitatethe receipt of input information by the computing device(s) 400 from oneor more I/O devices as well as the output of information from thecomputing device(s) 400 to one or more I/O devices. The I/O devices mayinclude any of a variety of components such as a display or displayscreen having a touch surface or touchscreen; an audio output device forproducing sound, such as a speaker; an audio capture device, such as amicrophone; an image and/or video capture device, such as a camera; ahaptic unit; and so forth. Any of these components may be integratedinto the computing device(s) 400 or may be separate. The I/O devices mayfurther include, for example, any number of peripheral devices such asdata storage devices, printing devices, and so forth.

The I/O interface(s) 406 may also include an interface for an externalperipheral device connection such as a universal serial bus (USB),FireWire, Thunderbolt, Ethernet port or other connection protocol thatmay connect to one or more networks. The I/O interface(s) 406 may alsoinclude a connection to one or more of the antenna(s) 434 to connect toone or more networks via a wireless local area network (WLAN) (such asWiFi) radio, Bluetooth, ZigBee, and/or a wireless network radio, such asa radio capable of communication with a wireless communication networksuch as a Long Term Evolution (LTE) network, WiMAX network, 3G network,etc.

The computing device(s) 400 may further include one or more networkinterface(s) 408 via which the computing device(s) 400 may communicatewith any of a variety of other systems, platforms, networks, devices,and so forth. The network interface(s) 408 may enable communication, forexample, with one or more wireless routers, one or more host servers,one or more web servers, and the like via one or more networks.

The antenna(s) 434 may include any suitable type of antenna depending,for example, on the communications protocols used to transmit or receivesignals via the antenna(s) 434. Non-limiting examples of suitableantennas may include directional antennas, non-directional antennas,dipole antennas, folded dipole antennas, patch antennas, multiple-inputmultiple-output (MIMO) antennas, or the like. The antenna(s) 434 may becommunicatively coupled to one or more transceivers 412 or radiocomponents to which or from which signals may be transmitted orreceived.

As previously described, the antenna(s) 434 may include a cellularantenna configured to transmit or receive signals in accordance withestablished standards and protocols, such as Global System for MobileCommunications (GSM), 3G standards (e.g., Universal MobileTelecommunications System (UMTS), Wideband Code Division Multiple Access(W-CDMA), CDMA2000, etc.), 4G standards (e.g., Long-Term Evolution(LTE), WiMax, etc.), direct satellite communications, or the like.

The antenna(s) 434 may additionally, or alternatively, include a WiFiantenna configured to transmit or receive signals in accordance withestablished standards and protocols, such as the IEEE 802.11 family ofstandards, including via 2.4 GHz channels (e.g., 802.11b, 802.11g,802.11n), 5 GHz channels (e.g., 802.11n, 802.11ac), or 60 GHz channels(e.g., 802.11ad). In alternative example embodiments, the antenna(s) 434may be configured to transmit or receive radio frequency signals withinany suitable frequency range forming part of the unlicensed portion ofthe radio spectrum.

The antenna(s) 434 may additionally, or alternatively, include a GNSSantenna configured to receive GNSS signals from three or more GNSSsatellites carrying time-position information to triangulate a positiontherefrom. Such a GNSS antenna may be configured to receive GNSS signalsfrom any current or planned GNSS such as, for example, the GlobalPositioning System (GPS), the GLONASS System, the Compass NavigationSystem, the Galileo System, or the Indian Regional Navigational System.

The transceiver(s) 412 may include any suitable radio component(s)for—in cooperation with the antenna(s) 434—transmitting or receivingradio frequency (RF) signals in the bandwidth and/or channelscorresponding to the communications protocols utilized by the computingdevice(s) 400 to communicate with other devices. The transceiver(s) 412may include hardware, software, and/or firmware for modulating,transmitting, or receiving— potentially in cooperation with any ofantenna(s) 434—communications signals according to any of thecommunications protocols discussed above including, but not limited to,one or more WiFi and/or WiFi direct protocols, as standardized by theIEEE 802.11 standards, one or more non-Wi-Fi protocols, or one or morecellular communications protocols or standards. The transceiver(s) 412may further include hardware, firmware, or software for receiving GNSSsignals. The transceiver(s) 412 may include any known receiver andbaseband suitable for communicating via the communications protocolsutilized by the computing device(s) 400. The transceiver(s) 412 mayfurther include a low noise amplifier (LNA), additional signalamplifiers, an analog-to-digital (A/D) converter, one or more buffers, adigital baseband, or the like.

The sensor(s)/sensor interface(s) 410 may include or may be capable ofinterfacing with any suitable type of sensing device such as, forexample, inertial sensors, force sensors, thermal sensors, and so forth.Example types of inertial sensors may include accelerometers (e.g.,MEMS-based accelerometers), gyroscopes, and so forth.

The speaker(s) 414 may be any device configured to generate audiblesound. The microphone(s) 416 may be any device configured to receiveanalog sound input or voice data.

It should be appreciated that the program module(s), applications,computer-executable instructions, code, or the like depicted in FIG. 4as being stored in the data storage 420 are merely illustrative and notexhaustive and that processing described as being supported by anyparticular module may alternatively be distributed across multiplemodule(s) or performed by a different module. In addition, variousprogram module(s), script(s), plug-in(s), application programminginterface(s) (API(s)), or any other suitable computer-executable codehosted locally on the computing device(s) 400, and/or hosted on othercomputing device(s) accessible via one or more networks, may be providedto support functionality provided by the program module(s),applications, or computer-executable code depicted in FIG. 4 and/oradditional or alternate functionality. Further, functionality may bemodularized differently such that processing described as beingsupported collectively by the collection of program module(s) depictedin FIG. 4 may be performed by a fewer or greater number of module(s), orfunctionality described as being supported by any particular module maybe supported, at least in part, by another module. In addition, programmodule(s) that support the functionality described herein may form partof one or more applications executable across any number of systems ordevices in accordance with any suitable computing model such as, forexample, a client-server model, a peer-to-peer model, and so forth. Inaddition, any of the functionality described as being supported by anyof the program module(s) depicted in FIG. 4 may be implemented, at leastpartially, in hardware and/or firmware across any number of devices.

It should further be appreciated that the computing device(s) 400 mayinclude alternate and/or additional hardware, software, or firmwarecomponents beyond those described or depicted without departing from thescope of the disclosure. More particularly, it should be appreciatedthat software, firmware, or hardware components depicted as forming partof the computing device(s) 400 are merely illustrative and that somecomponents may not be present or additional components may be providedin various embodiments. While various illustrative program module(s)have been depicted and described as software module(s) stored in thedata storage 420, it should be appreciated that functionality describedas being supported by the program module(s) may be enabled by anycombination of hardware, software, and/or firmware. It should further beappreciated that each of the above-mentioned module(s) may, in variousembodiments, represent a logical partitioning of supportedfunctionality. This logical partitioning is depicted for ease ofexplanation of the functionality and may not be representative of thestructure of software, hardware, and/or firmware for implementing thefunctionality. Accordingly, it should be appreciated that functionalitydescribed as being provided by a particular module may, in variousembodiments, be provided at least in part by one or more othermodule(s). Further, one or more depicted module(s) may not be present incertain embodiments, while in other embodiments, additional module(s)not depicted may be present and may support at least a portion of thedescribed functionality and/or additional functionality. Moreover, whilecertain module(s) may be depicted and described as sub-module(s) ofanother module, in certain embodiments, such module(s) may be providedas independent module(s) or as sub-module(s) of other module(s).

One or more operations of the methods, process flows, and use cases ofFIGS. 1-3 may be performed by a device having the illustrativeconfiguration depicted in FIG. 4 , or more specifically, by one or moreengines, program module(s), applications, or the like executable on sucha device. It should be appreciated, however, that such operations may beimplemented in connection with numerous other device configurations.

Although specific embodiments of the disclosure have been described, oneof ordinary skill in the art will recognize that numerous othermodifications and alternative embodiments are within the scope of thedisclosure. For example, any of the functionality and/or processingcapabilities described with respect to a particular device or componentmay be performed by any other device or component. Further, whilevarious illustrative implementations and architectures have beendescribed in accordance with embodiments of the disclosure, one ofordinary skill in the art will appreciate that numerous othermodifications to the illustrative implementations and architecturesdescribed herein are also within the scope of this disclosure.

Certain aspects of the disclosure are described above with reference toblock and flow diagrams of systems, methods, apparatuses, and/orcomputer program products according to example embodiments. It will beunderstood that one or more blocks of the block diagrams and flowdiagrams, and combinations of blocks in the block diagrams and the flowdiagrams, respectively, may be implemented by execution ofcomputer-executable program instructions. Likewise, some blocks of theblock diagrams and flow diagrams may not necessarily need to beperformed in the order presented, or may not necessarily need to beperformed at all, according to some embodiments. Further, additionalcomponents and/or operations beyond those depicted in blocks of theblock and/or flow diagrams may be present in certain embodiments.

Accordingly, blocks of the block diagrams and flow diagrams supportcombinations of means for performing the specified functions,combinations of elements or steps for performing the specifiedfunctions, and program instruction means for performing the specifiedfunctions. It will also be understood that each block of the blockdiagrams and flow diagrams, and combinations of blocks in the blockdiagrams and flow diagrams, may be implemented by special-purpose,hardware-based computer systems that perform the specified functions,elements or steps, or combinations of special-purpose hardware andcomputer instructions.

Program module(s), applications, or the like disclosed herein mayinclude one or more software components, including, for example,software objects, methods, data structures, or the like. Each suchsoftware component may include computer-executable instructions that,responsive to execution, cause at least a portion of the functionalitydescribed herein (e.g., one or more operations of the illustrativemethods described herein) to be performed.

A software component may be coded in any of a variety of programminglanguages. An illustrative programming language may be a lower-levelprogramming language such as an assembly language associated with aparticular hardware architecture and/or operating system platform. Asoftware component comprising assembly language instructions may requireconversion into executable machine code by an assembler prior toexecution by the hardware architecture and/or platform.

Another example programming language may be a higher-level programminglanguage that may be portable across multiple architectures. A softwarecomponent comprising higher-level programming language instructions mayrequire conversion to an intermediate representation by an interpreteror a compiler prior to execution.

Other examples of programming languages include, but are not limited to,a macro language, a shell or command language, a job control language, ascript language, a database query or search language, or a reportwriting language. In one or more example embodiments, a softwarecomponent comprising instructions in one of the foregoing examples ofprogramming languages may be executed directly by an operating system orother software component without having to be first transformed intoanother form.

A software component may be stored as a file or other data storageconstruct. Software components of a similar type or functionally relatedmay be stored together such as, for example, in a particular directory,folder, or library. Software components may be static (e.g.,pre-established or fixed) or dynamic (e.g., created or modified at thetime of execution).

Software components may invoke or be invoked by other softwarecomponents through any of a wide variety of mechanisms. Invoked orinvoking software components may comprise other custom-developedapplication software, operating system functionality (e.g., devicedrivers, data storage (e.g., file management) routines, other commonroutines, and services, etc.), or third-party software components (e.g.,middleware, encryption, or other security software, database managementsoftware, file transfer or other network communication software,mathematical or statistical software, image processing software, andformat translation software).

Software components associated with a particular solution or system mayreside and be executed on a single platform or may be distributed acrossmultiple platforms. The multiple platforms may be associated with morethan one hardware vendor, underlying chip technology, or operatingsystem. Furthermore, software components associated with a particularsolution or system may be initially written in one or more programminglanguages, but may invoke software components written in anotherprogramming language.

Computer-executable program instructions may be loaded onto aspecial-purpose computer or other particular machine, a processor, orother programmable data processing apparatus to produce a particularmachine, such that execution of the instructions on the computer,processor, or other programmable data processing apparatus causes one ormore functions or operations specified in the flow diagrams to beperformed. These computer program instructions may also be stored in acomputer-readable storage medium (CRSM) that upon execution may direct acomputer or other programmable data processing apparatus to function ina particular manner, such that the instructions stored in thecomputer-readable storage medium produce an article of manufactureincluding instruction means that implement one or more functions oroperations specified in the flow diagrams. The computer programinstructions may also be loaded onto a computer or other programmabledata processing apparatus to cause a series of operational elements orsteps to be performed on the computer or other programmable apparatus toproduce a computer-implemented process.

Additional types of CRSM that may be present in any of the devicesdescribed herein may include, but are not limited to, programmablerandom access memory (PRAM), SRAM, DRAM, RAM, ROM, electrically erasableprogrammable read-only memory (EEPROM), flash memory or other memorytechnology, compact disc read-only memory (CD-ROM), digital versatiledisc (DVD) or other optical storage, magnetic cassettes, magnetic tape,magnetic disk storage or other magnetic storage devices, or any othermedium which can be used to store the information and which can beaccessed. Combinations of any of the above are also included within thescope of CRSM. Alternatively, computer-readable communication media(CRCM) may include computer-readable instructions, program module(s), orother data transmitted within a data signal, such as a carrier wave, orother transmission. However, as used herein, CRSM does not include CRCM.

Although embodiments have been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the disclosure is not necessarily limited to the specific featuresor acts described. Rather, the specific features and acts are disclosedas illustrative forms of implementing the embodiments. Conditionallanguage, such as, among others, “can,” “could,” “might,” or “may,”unless specifically stated otherwise, or otherwise understood within thecontext as used, is generally intended to convey that certainembodiments could include, while other embodiments do not include,certain features, elements, and/or steps. Thus, such conditionallanguage is not generally intended to imply that features, elements,and/or steps are in any way required for one or more embodiments or thatone or more embodiments necessarily include logic for deciding, with orwithout user input or prompting, whether these features, elements,and/or steps are included or are to be performed in any particularembodiment.

That which is claimed is:
 1. A pool heating system comprising: a firstpool heating unit; a second pool heating unit, wherein the first poolheating unit is a first type of pool heating unit and the second poolheating unit is a second type of pool heating unit; a processor; and amemory storing computer-executable instructions that, when executed bythe processor, cause the processor to: determine a first input parameterassociated with an operation of the pool heating system; send, based onreceiving the first input parameter, a first signal to enable the firstpool heating unit to heat a first pool; determine a second inputparameter; and send, based on receiving the second input parameter, asecond signal to enable the second pool heating unit to heat the firstpool.
 2. The system of claim 1, wherein the first input parameter andthe second input parameter comprise at least one of: solar capacity,ambient temperature, a water temperature of the first pool, a weathercondition, humidity, time, or power grid demand response.
 3. The systemof claim 1, wherein the first type of pool heating unit and the secondtype of pool heating unit comprise at least one of: a gas pool heatingunit, an heat pump, or a solar panel.
 4. The system of claim 1, furthercomprising a third pool heating unit, wherein the third pool heatingunit is a third type of pool heating unit.
 5. The system of claim 1,wherein the processor is integrated into the first pool heating unit orthe second pool heating unit.
 6. The system of claim 1, wherein thefirst input parameter or the second input parameter are received from auser mobile device.
 7. The system of claim 1, wherein thecomputer-executable instructions further cause the processor to send athird signal to enable a fourth pool heating unit to heat a second pool,wherein the second pool is at a different location than the first pool.8. A method comprising: determining, by a processor, a first inputparameter associated with an operation of a pool heating systemcomprising a first pool heating unit and a second pool heating unit,wherein the first pool heating unit is a first type of pool heating unitand the second pool heating unit is a second type of pool heating unit;sending, using the processor, based on receiving the first inputparameter, a first signal to enable the first pool heating unit to heata first pool; determining, by the processor, a second input parameter;and sending, using the processor, based on receiving the second inputparameter, a second signal to enable the second pool heating unit toheat the first pool.
 9. The method of claim 8, wherein the first inputparameter and the second input parameter comprise at least one of: solarcapacity, ambient temperature, a water temperature of the first pool, aweather condition, humidity, time, or power grid demand response. 10.The method of claim 8, wherein the first type of pool heating unit andthe second type of pool heating unit comprise at least one of: a gaspool heating unit, an heat pump, or a solar panel.
 11. The method ofclaim 8, wherein the pool heating system further comprises a third poolheating unit, wherein the third pool heating unit is a third type ofpool heating unit.
 12. The method of claim 8, wherein the processor isintegrated into the first pool heating unit or the second pool heatingunit.
 13. The method of claim 8, wherein the first input parameter orthe second input parameter are received from a user mobile device. 14.The method of claim 8, further comprising sending a third signal toenable a fourth pool heating unit to heat a second pool, wherein thesecond pool is at a different location than the first pool.
 15. A poolheating unit comprising: a processor; and a memory storingcomputer-executable instructions that, when executed by the processor,cause the processor to: determine a first input parameter associatedwith an operation of the pool heating apparatus, wherein the poolheating unit is a first type of pool heating unit; send, based onreceiving the first input parameter, a first signal to enable the poolheating unit to heat a first pool; determine a second input parameter;and send, based on receiving the second input parameter, a second signalto enable a second pool heating unit to heat the first pool, wherein thesecond pool heating unit is a second type of pool heating unit.
 16. Thepool heating unit of claim 15, wherein the first input parameter and thesecond input parameter comprise at least one of: solar capacity, ambienttemperature, a water temperature of the first pool, a weather condition,humidity, time, or power grid demand response.
 17. The pool heating unitof claim 15, wherein the first type of pool heating unit and the secondtype of pool heating unit comprise at least one of: a gas pool heatingunit, an heat pump, or a solar panel.
 18. The pool heating unit of claim15, further comprising a third pool heating unit, wherein the third poolheating unit is a third type of pool heating unit.
 19. The pool heatingunit of claim 15, wherein the processor is integrated into the poolheating unit or the second pool heating unit.
 20. The pool heating unitof claim 15, wherein the first input parameter or the second inputparameter are received from a user mobile device.